1. Field of the Invention
The invention generally relates to manipulating data through a graphic user interface within a data processing system, and more particularly to a spiral scrollbar, which allows for easier navigation in the display unit of the data processing system, thereby providing easier manipulation of the data.
2. Description of the Related Art
A computer display is a finite surface that can hold only a limited and relatively small amount of visual information. When a large amount of information needs to be accessible to the user, only a fraction of the total information can be shown at a time or within a short period of time. If the user needs information that is not shown, the system must provide a way to navigate through the information space until the desired information is shown. In traditional windowing systems, navigation is accomplished by using a linear scrollbar.
A scrollbar is a well-known user interface component that is associated with a scrollable area of a display, indicating to a user that more information is available and may be accessed in a particular direction with respect to the display. The information space is seen as a linear ribbon on the display unit (i.e., computer monitor), and the window shows a fraction of that ribbon. Moreover, the scrollbar allows the user to change the portion of the ribbon that is displayed.
As such, a scrollbar may be utilized to scroll additional data into view, and most conventional scrollbars include a slider and scroll buttons. As shown in FIG. 1, a scrollbar 1 consists of two elongated nested rectangles 5, 10, the outer long rectangle (referred to in the art as a “trough”) 5 represents the whole information space linearly; the inner small rectangle (referred to in the art as a “thumb” or “elevator”) 10 shows the portion of the information ribbon (or document) 15 that is shown in the window 12. The scrollbar 1 also contains a pair of oppositely positioned arrows or guides 2, which are usually triangularly shaped. There is a direct linear mapping between the full document and the outer rectangle 5. One side of the rectangle 7 represents the beginning of the document, while the opposite side 9 represents the end of the document. Moving the inner rectangle 10 to either side 7, 9 will then scroll to the beginning of the document or its end. Scrollbars 1 are usually placed on one or two edges 3 of the window 12. In some implementations, the size of the inner rectangle 10 in the scrollbar 1 varies when the document size changes. For example, in Windows-based applications, for lengthy documents, the size of the inner rectangle 10 may be a thin rectangle, whereas for short documents, the size of the inner rectangle 10 may be a much thicker rectangle, which may encompass the entire length of the outer rectangle 5. For documents in Windows-based applications of average length, the inner rectangle 10 may appear as a perfect square shape. In fact, the ratio of the sizes of the inner 10 and outer 5 rectangles may give the percentage of the document 15 that is visible.
The fact that the scrollbar 1 is linear has a major consequence in design. The length of the outer rectangle 5 is limited by the size of the window 12 and of the computer (document) display 15. Because there is a direct mapping between the document 15 and the scrollbar 1, and because the size of the document 15 is not limited, when the document size increases, a fixed portion of the document 15 will be represented by an increasingly smaller area of the scrollbar 1, making visualization and manipulation very difficult.
More formally, consider an x, y coordinate system representing a window display 12 having a document 15 shown thereon. For the following illustrative purposes, and for brevity, only the y dimension will be discussed. Suppose Ly denotes the total length of the document and Wy denotes the size of the window 12. As shown in FIG. 1, the total length of the document 15 is not completely shown in the window display 12, rather there is a remaining portion (not shown) of the document 15, thus the length Ly, denotes the total length of the document 15, and not merely the length of the document 15 shown in the confined window display 12. Also, by denotes the current position of the center of the window 12. At the beginning of the document, y=Wy/2. At the end of the document, y=Ly−(Wy/2). For example, suppose the scrollbar 1 is fully nested inside the window 12 and also has a size Wy, and cy is the size of the inner rectangle 10 of the scrollbar 1 and ay is the position of the center of the inner rectangle 10, wherein ay satisfies the following constraint: cy/2<ay<[Wy−(cy/2)]. Using these notations, the relationship between ay and by is:
      b    y    =                    (                              L            y                    -                      W            y                          )            ×              [                              (                                          a                y                            -                                                c                  y                                2                                      )                                (                                          W                y                            -                              c                y                                      )                          ]              +                  W        y            2      
When the user moves the inner rectangle 10 of the scrollbar 1 a distance da, the document will scroll by a distance:
  db  =                    (                              L            y                    -                      W            y                          )                    (                              W            y                    -                      c            y                          )              ×    da  
Using this formula, it is apparent that when the document size increases, the scrolling speed will also increase. For example, suppose that Ly=4,096 pixels, Wy=512 pixels, and that cy=64 pixels. If the user moves the scrollbar by one pixel (da=1), the document will scroll by 8 pixels (db=8). This represents a very smooth scrolling action and corresponds to a normal scrollbar use.
However, suppose that Ly=1,048,576 pixels, Wy=512, and cy=64 pixels. If the user moves the scrollbar by one pixel (da=1), the document will scroll by almost 2,340 pixels (db=2,340). This also means that a large portion of the document (2,340-512=1,828 pixels) is not shown to the user at all. The fact that the scrollbar 1 is linear and limited in size makes it impossible to scroll large documents 15, because some portions of the document will not be shown to the user.
Solutions to these problems include using the arrows 2 of the scrollbar 1 to scroll the document 15 line by line. However, this is not a viable solution because most scrollbars have a fixed scrolling unit per unit of time and scrolling through a large document would take a prohibitive amount of time (if the document scrolls by 8 pixels every 10 milliseconds, scrolling through a document of size 1,048,576 pixels would take almost 20 minutes). This is also true for function keys like PageDown or PageUp, which, although faster, would require several minutes of constant scrolling.
Another solution to the problem would be to have an analog scrollbar, instead of a digital scrollbar. The analog scrollbar would allow moving the scrollbar on instances da inferior to 1. Although such scrollbars are practically feasible by analog circuits, it would not be easy to integrate them in today's digital computers. The problem would also remain that the user would have to move the scrollbar very small distances to be able to view all portions of a very large document. The distances may even be smaller than the resolution of the human motor control system, preventing any efficient navigation.
Spiral designs have been used previously for interacting with computers. For example, in U.S. Pat. No. 5,995,079 issued to Sheasby et al. on Nov. 30, 1999, the complete disclosure of which is herein incorporated by reference, discloses a spiral used to dynamically change a variable value, and whereby a linear scrollbar is used to show the current value. A second example of spiral designs is the technique of pie menus, which organize items in a circle. When there are many items, the problem of having too many items to display appears. Pie menus use a spiral scrolling technique, but there is no graphical spiral; the user just makes a circular motion around a point, which is interpreted as a command to rotate the menu items.
The limitation of traditional scrollbars comes from the fact that they are linear. Therefore, there is a need for a new and improved non-linear scrollbar, which overcomes the deficiencies of the conventional scrollbars, which allows for easy navigation through a document, and which can be easily integrated in current computer systems.